﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LABORATORIOCAPS2LIBRES.Clases;
using LABORATORIOCAPS2LIBRES;

namespace LABORATORIOCAPS2LIBRES.Analisis
{
    public partial class lblgrupos : Form
    {
        LABORATORIOEntities context;
        private Font printFont = new Font("Calibri", 11);
        private Font FontTit = new Font("Calibri", 12);
        private Font Font9 = new Font("Calibri", 9);
        private Font Fontt = new Font("Calibri", 10, FontStyle.Bold);
        private Font FonttsinNeg = new Font("Calibri", 10, FontStyle.Italic);
        public int nrocomp;
        private Profesionales prof;
        private Pacientes pac;
        bool titulo= false;
        private Protocolo ProtocoloImp;

        string porcentaje = "%";
        string barramm3 = "/mm³";
        string mm = "mm";
        string min = "min.";
        string mgdl = "mg/dl";
        //string Uii = "UI/I"; //??????
        
        int countLineas ;
        int incY ;
            int inctitulos ;
            int iniy ;
            int iniX;
            int incX ;
            int inifinX ;
            int intermedioX ;
            int ini2x ;
            int inidatosx ;
            int incxorina;
            int nrohoja;
            bool fin;
            int maxlineas = 1200;
           


        public lblgrupos()
        {
            InitializeComponent();
           
            context = new LABORATORIOEntities();
            nrocomp = obtenerNumeroProtocolo();
            txtbnroprotocolo.Text = Convert.ToString(nrocomp);
        }

        private void bttnGuardar_Click(object sender, EventArgs e)
        {
            Protocolo ProtocoloNuevo = new Protocolo();
            ProtocoloNuevo.fecha = dateTimePicker1.Value.Date;
            ProtocoloNuevo.numeroprotocolo = nrocomp;//validar que no kde vacio
          
            //ProtocoloNuevo.idprofesional = profselec.idprof;
            //ProtocoloNuevo.idpaciente = pacienteselec.idpac;

            ProtocoloNuevo.Hematocrito = txtbhematocrito.Text;
            ProtocoloNuevo.Hemoglobina = txtbhemoglobina.Text;
            ProtocoloNuevo.GlobulosRojos = txtbglobrojos.Text;
            ProtocoloNuevo.GlobulosBlancos = txtbglobblancos.Text;
            ProtocoloNuevo.RecdePlaquetas = txtbrecplaquetas.Text;
            ProtocoloNuevo.Neutrofilosencayado = txtbneutrofcayado.Text;
            ProtocoloNuevo.Neutrofilossegment = txtbneutrosegment.Text;
            ProtocoloNuevo.Eosinofilos = txtbeosinofilo.Text;
            ProtocoloNuevo.Basofilos = txtbbasofilo.Text;
            ProtocoloNuevo.Linfocitos = txtblinfocito.Text;
            ProtocoloNuevo.Monocitos = txtbmonocito.Text;
            ProtocoloNuevo.Celirritadas = txtbcelirritadas.Text;
            ProtocoloNuevo.Eritrosedimentacion = txtberitrosedim.Text;
            ProtocoloNuevo.Tiempodecoagulacion = txtbtiempocoag.Text;
            ProtocoloNuevo.GrupoSanguineo = cmbGrupoSang.Text;
            ProtocoloNuevo.FactorRH = cmbFactorRH.Text;
            ProtocoloNuevo.Glucemia = txtbGlucemia.Text;
            ProtocoloNuevo.Uremia = txtbUremia.Text;
            ProtocoloNuevo.Creatinina = txtbCreatinina.Text;
            ProtocoloNuevo.Prtotales = txtbprtotales.Text;
            ProtocoloNuevo.Albumina = txtbAlbumia.Text;
            ProtocoloNuevo.Uricemia = txtbUricemia.Text;
            ProtocoloNuevo.Colesterol = txtbColesterol.Text;
            ProtocoloNuevo.HDLColesterol = txtbHdl.Text;
            ProtocoloNuevo.LDLColesterol = txtbLdl.Text;
            ProtocoloNuevo.Trigliceridos = txtbTrigliceridos.Text;
            ProtocoloNuevo.Calcio = txtbCalcio.Text;
            ProtocoloNuevo.Amilasa = txtbAmilasa.Text;
            ProtocoloNuevo.TGO = txtbTGO.Text;
            ProtocoloNuevo.TGP = txtbTgp.Text;
            ProtocoloNuevo.FAL = txtbFal.Text;
            ProtocoloNuevo.BilirrubinemiaDirecta = txtbBilirruDirecta.Text;
            ProtocoloNuevo.BilirrubinemiaTotal = txtbTotalbilirru.Text;
            ProtocoloNuevo.ProteinaReactiva = txtbProteinaR.Text;
            ProtocoloNuevo.Aelo = txtbAelo.Text;
            ProtocoloNuevo.Artritest = txtbArtritest.Text;
            ProtocoloNuevo.VDRL = txtbVdrl.Text;
            ProtocoloNuevo.Chagas = txtbChagas.Text;
            ProtocoloNuevo.Toxoplasmosis = txtbToxopla.Text;
            ProtocoloNuevo.HIV = txtbhiv.Text;
            ProtocoloNuevo.HepatitisB = txtbHepatitisb.Text;
            ProtocoloNuevo.PruebadeCoombs = cmbCoombs.Text;
            ProtocoloNuevo.HCG = cmbHcg.Text;
            ProtocoloNuevo.AntigenoA = cmbAntigenoA.Text;
            ProtocoloNuevo.AntigenoB = cmbAntigenoB.Text;
            ProtocoloNuevo.AntigenoH = cmbAntigenoH.Text;
            ProtocoloNuevo.AntigenoO = cmbAntigenoO.Text;
            ProtocoloNuevo.Baciloscopiadeesputo = txtbBaciloscopia.Text;
            ProtocoloNuevo.Color = txtbColorO.Text;
            ProtocoloNuevo.Aspecto = cmbAspectoOrin.Text;
            ProtocoloNuevo.Sedimento = cmbSedimentoO.Text;
            ProtocoloNuevo.Densidad = txtbDensidad.Text;
            ProtocoloNuevo.pH = cmbPH.Text;
            ProtocoloNuevo.Proteinas = txtbProteinas.Text;
            ProtocoloNuevo.Glucosa = txtbGlucosa.Text;
            ProtocoloNuevo.Cetonicos = txtbCetonico.Text;
            ProtocoloNuevo.Sangre = txtbSangre.Text;
            ProtocoloNuevo.Bilirrubina = txtbBilirrubina.Text;
            ProtocoloNuevo.Urobilinogeno = txtbUrrobilinogeno.Text;
            ProtocoloNuevo.CelulasEpitelialesPlanas = cmbCelulaEpitePlana.Text;
            ProtocoloNuevo.CelulasEpitelialesRedondas = cmbCelulaEpiRedonda.Text;
            ProtocoloNuevo.Leucocitos = cmbLeucocitos.Text;
            ProtocoloNuevo.Hematies = cmbHematies.Text;
            ProtocoloNuevo.EstriasdeMucus = cmbEstriasMucus.Text;
            ProtocoloNuevo.Cilindros = txtbCilindros.Text;
            ProtocoloNuevo.Cristales = txtbCristales.Text;
            ProtocoloNuevo.Piuria = cmbPiuria.Text;
            ProtocoloNuevo.Observacion = txtbObservaciones.Text;
            ProtocoloNuevo.Proteinuria = txtbProteinura.Text;
            ProtocoloNuevo.ClearencedeCreatinina = txtbClearence.Text;
            ProtocoloNuevo.Directo = txtbDirecto.Text;
            ProtocoloNuevo.Seriado = txtbSeriado.Text;
            ProtocoloNuevo.Escobillado = txtbEscobillado.Text;


            context.AddToProtocolo(ProtocoloNuevo);
            context.SaveChanges();
            ProtocoloImp = new Protocolo();
            ProtocoloImp = ProtocoloNuevo;
           
            DialogResult MsjRepregunta = MessageBox.Show("El Protocolo ha sido Guardado con Exito. ¿Desea Imprimir el Protocolo?",
                                                  "Remediar + Redes", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (MsjRepregunta == DialogResult.Yes)
            {
                InicializarContadores();
                Imprimir();
                this.Close();
            }
            else
            {
                this.Close();
            }

        }

        public int obtenerNumeroProtocolo()
        {
            int numero = 0;

            foreach (var p in context.Protocolo)
            {
                if (p.numeroprotocolo > numero)
                    numero = p.numeroprotocolo;
            }
            return numero + 1;
        }

        private void bttnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void Imprimir()
        {
            printDialog.Document = printDocument;
            DialogResult resultadounico = printDialog.ShowDialog();

            if (resultadounico == DialogResult.OK)
            {
                printDocument.PrinterSettings = printDialog.PrinterSettings;
                printPreviewDialog.Document = printDocument;
                ((Form)printPreviewDialog).WindowState = FormWindowState.Maximized;
                printPreviewDialog.ShowDialog();
            }
        }

        private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            context = new LABORATORIOEntities();
           
            //InicializarContadores();
       
            int margenX = 50;
            int margenY = 50;
            int anchoHoja = 800;

            PointF punto = new PointF();
            punto.X = anchoHoja / 2;
            punto.Y = margenY + 30;

            StringFormat formato = new StringFormat();
            formato.Alignment = StringAlignment.Near;


            e.Graphics.DrawImage(pictureBoxmuni.Image, 680, 20);
            e.Graphics.DrawImage(pictureBoxcorazon.Image, 10, 20);

            e.Graphics.DrawString("C.A.P.S. Nº 2", FontTit, Brushes.Black, 370, 60);//ESTE DEBE SER VARIABLEEEEEEE

            e.Graphics.DrawString("LABORATORIO DE ANALISIS CLINICOS", FontTit, Brushes.Black, 310, 40);
            e.Graphics.DrawString("Paciente:", printFont, Brushes.Black, 150, 70);
            string pac = lblPaciente.Text;
            e.Graphics.DrawString(pac, printFont, Brushes.Black, 220, 70, formato);
            e.Graphics.DrawString("DNI:", printFont, Brushes.Black, 450, 70, formato);
            e.Graphics.DrawString("Solicitante:", printFont, Brushes.Black, 150, 85, formato);
            string prof = lblProfesional.Text;
            e.Graphics.DrawString(prof, printFont, Brushes.Black, 220, 85, formato);
            string fechap = ProtocoloImp.fecha.Date.ToString("dd/MM/yyyy");
            e.Graphics.DrawString("Fecha:", printFont, Brushes.Black, 150, 100, formato);
            e.Graphics.DrawString(fechap, printFont, Brushes.Black, 200, 100);
            e.Graphics.DrawString("Protocolo Nº:", printFont, Brushes.Black, 450, 100, formato);
            int nro = ProtocoloImp.idprotocolo;
            e.Graphics.DrawString(nro.ToString(), printFont, Brushes.Black, 550, 100);
            e.Graphics.DrawLine(Pens.Black, 10, 130, 800, 130);

            Protocolo protbuscado = context.Protocolo.FirstOrDefault(p => p.idprotocolo == nro);
            bool pruebaHemograma = QueseRealizo.SeRealizoHemograma(protbuscado.idprotocolo);
            bool pruebaformulaleucocitaria = QueseRealizo.SeRealizoFormulaLeucocitaria(protbuscado.idprotocolo);
            bool pruebaquimicaserica = QueseRealizo.SeRealizoQuimicaSerica(protbuscado.idprotocolo);
            bool pruebahepatograma = QueseRealizo.SeRealizoHepatograma(protbuscado.idprotocolo);
            bool pruebabilirrubinemia = QueseRealizo.SeRealizoBilirruminemia(protbuscado.idprotocolo);
            bool pruebaserologia = QueseRealizo.SeRealizoSerologia(protbuscado.idprotocolo);
            bool prueba2dahojaarriba = QueseRealizo.SeRealizoHoja2Arriba(protbuscado.idprotocolo);
            bool pruebawidal = QueseRealizo.SeRealizoReaccionWidal(protbuscado.idprotocolo);
            bool pruebaorinacompleta = QueseRealizo.SeRealizoOrinaCompleta(protbuscado.idprotocolo);
            bool pruebamicroscopia = QueseRealizo.SeRealizoMicroscopiadelSedimento(protbuscado.idprotocolo);
            bool pruebacoprositologico = QueseRealizo.SeRealizoCoproparasitologico(protbuscado.idprotocolo);
            bool prueba2dahojaabajo = QueseRealizo.SeRealizoHoja2Abajo(protbuscado.idprotocolo);

            if (countLineas < maxlineas)
            {
                if (pruebaHemograma == false) // Se realizo Hemograma
                {
                    e.Graphics.DrawString("HEMOGRAMA", Fontt, Brushes.Black, iniX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Hematocrito:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Hematocrito.ToString(), Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(porcentaje.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("Hemoglobina:", Font9, Brushes.Black, inifinX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Hemoglobina.ToString(), Font9, Brushes.Black, inifinX + incX, iniy, formato);
                    e.Graphics.DrawString(porcentaje.ToString(), Font9, Brushes.Black, (ini2x + 400), iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Glóbulos Rojos:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.GlobulosRojos.ToString(), Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(barramm3.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("Glóbulos Blancos:", Font9, Brushes.Black, inifinX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.GlobulosBlancos.ToString(), Font9, Brushes.Black, inifinX + incX, iniy, formato);
                    e.Graphics.DrawString(barramm3.ToString(), Font9, Brushes.Black, (ini2x + 400), iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Rec. de Plaquetas:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.RecdePlaquetas.ToString(), Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(barramm3.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                }
            }
            if (countLineas < maxlineas)
            {
                if (pruebaformulaleucocitaria == false) // Se realizo Formula Leucocitaria
                {
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("FORMULA LEUCOCITARIA", FonttsinNeg, Brushes.Black, iniX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Neutrófilos en cayado:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Neutrofilosencayado, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(porcentaje.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Neutrófilos segment.:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Neutrofilossegment, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(porcentaje.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Eosinófilos:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Eosinofilos, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(porcentaje.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Basófilos:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Basofilos, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(porcentaje.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Linfocitos:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Linfocitos, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(porcentaje.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Monocitos:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Monocitos, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(porcentaje.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Cél. Irritadas:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Celirritadas, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(porcentaje.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    iniy = iniy + 2 * (incY);
                    IncrementodeLinea(titulo);

                    e.Graphics.DrawString("Eritrosedimentacion:   1hr.:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Eritrosedimentacion, Font9, Brushes.Black, iniX + incX + 6, iniy, formato);
                    e.Graphics.DrawString(mm.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    iniy = iniy + 2 * (incY);
                    IncrementodeLinea(titulo);

                    e.Graphics.DrawString("Tiempo de Coagulación:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Tiempodecoagulacion, Font9, Brushes.Black, iniX + incX + 6, iniy, formato);
                    e.Graphics.DrawString(min.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    iniy = iniy + 2 * (incY);
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("GRUPO SANGUINEO:            \"      \" ", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.GrupoSanguineo, Font9, Brushes.Black, inidatosx, iniy, formato);
                    e.Graphics.DrawString("FACTOR RH: ", Font9, Brushes.Black, inifinX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.FactorRH, Font9, Brushes.Black, inifinX + incX, iniy, formato);
                }
            }
            if (countLineas < maxlineas)
            {
                if (pruebaquimicaserica == false) // Se realizo Quimica Serica
                {
                    iniy = iniy + inctitulos + incY;
                    titulo = true;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("QUIMICA SERICA", Fontt, Brushes.Black, iniX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Glucemia:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Glucemia, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("(v.n.: 70-110 mg/dl)", Font9, Brushes.Black, inifinX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Uremia:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Uremia, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("(v.n.: 10-45 mg/dl)", Font9, Brushes.Black, inifinX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Creatinina:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Creatinina, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("(v.n.: 0,80-1,40 mg/dl)", Font9, Brushes.Black, inifinX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Pr. Totales:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Prtotales, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("(v.n.: 6,00-8,00 mg/dl)", Font9, Brushes.Black, inifinX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Albumia:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Albumina, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("(v.n.: 3,50-4,80 mg/dl)", Font9, Brushes.Black, inifinX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Uricemia:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Uricemia, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("(v.n.: Hombres 2,5-6,0 mg/dl- Mujeres: 2,0-5,0 mgdl)", Font9, Brushes.Black, inifinX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Colesterol:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Colesterol, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("(v.n.: 150-220 mg/dl)", Font9, Brushes.Black, inifinX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("HDL-Colesterol:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.HDLColesterol, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("LDL-Colesterol:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.LDLColesterol, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Triglicéridos:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Trigliceridos, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("(v.n.: Menor a 150 mg/dl)", Font9, Brushes.Black, inifinX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Calcio:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Calcio, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("(v.n.: 8,5-10,5 mg/dl)", Font9, Brushes.Black, inifinX, iniy, formato);
                    iniy = iniy + incY;
                    IncrementodeLinea(titulo);
                    e.Graphics.DrawString("Amilasa:", Font9, Brushes.Black, iniX, iniy, formato);
                    e.Graphics.DrawString(ProtocoloImp.Amilasa, Font9, Brushes.Black, iniX + incX, iniy, formato);
                    e.Graphics.DrawString(mgdl.ToString(), Font9, Brushes.Black, ini2x, iniy, formato);
                    e.Graphics.DrawString("(v.n.: Hasta 120 UA/dl)", Font9, Brushes.Black, inifinX, iniy, formato);
                }
            }
        if (countLineas < maxlineas)
            {

            if (pruebahepatograma == false) // Se realizo Hepatograma
            {
                iniy = iniy + inctitulos + incY;
                titulo = true;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("HEPATOGRAMA", Fontt, Brushes.Black, iniX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("TGO:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.TGO, Font9, Brushes.Black, iniX + incX, iniy, formato);
                e.Graphics.DrawString("(v.n.: 4 - 20 UI/I)", Font9, Brushes.Black, ini2x, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("TGP:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.TGP, Font9, Brushes.Black, iniX + incX, iniy, formato);
                e.Graphics.DrawString("(v.n.: 2 - 18 UI/I)", Font9, Brushes.Black, ini2x, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("FAL:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.FAL, Font9, Brushes.Black, iniX + incX, iniy, formato);
                e.Graphics.DrawString("(v.n.: Adultos 68 -240 UI/I - Niños: 100-400 UI/I)", Font9, Brushes.Black, ini2x, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
            }
        }
        if (countLineas < maxlineas)
        {

            if (pruebabilirrubinemia == false) // Se realizo Bilirrubinemia
            {
                iniy = iniy + inctitulos + incY;
                titulo = true;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Bilirrubinemia", Fontt, Brushes.Black, iniX, iniy, formato);

                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Directa:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.BilirrubinemiaDirecta, Font9, Brushes.Black, iniX + incX, iniy, formato);
                e.Graphics.DrawString("(v.n.: Hasta 0,20 mg/dl)", Font9, Brushes.Black, ini2x, iniy, formato);

                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Total:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.BilirrubinemiaTotal, Font9, Brushes.Black, iniX + incX, iniy, formato);
                e.Graphics.DrawString("(v.n.: Hasta 1,00 mg/dl)", Font9, Brushes.Black, ini2x, iniy, formato);
                iniy = iniy + incY;
            }
        }
        if (countLineas < maxlineas)
        {

            if (pruebaserologia == false) // Se realizo Serologia
            {
                iniy = iniy + inctitulos + incY;
                titulo = true;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("SEROLOGIA", Fontt, Brushes.Black, iniX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Proteina C Reactiva:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.ProteinaReactiva, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("AELO:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Aelo, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Artritest:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Artritest, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("V.D.R.L:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.VDRL, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Chagas:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Chagas, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Toxoplasmosis:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Toxoplasmosis, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("HIV:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.HIV, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Hepatitis B:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.HepatitisB, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Prueba de Coombs indirecta:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.PruebadeCoombs, Font9, Brushes.Black, iniX + incX + 50, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("HCG (Sub B):", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.HCG, Font9, Brushes.Black, iniX + incX + 50, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
            }
        }
        if (countLineas < maxlineas)
        {
            if (pruebawidal == false) // Se realizo Widal
            {
                iniy = iniy + inctitulos + incY;
                titulo = true;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Reacción de Widal", Fontt, Brushes.Black, iniX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Antígeno A:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.AntigenoA, Font9, Brushes.Black, iniX + incX, iniy, formato);
                e.Graphics.DrawString("Antígeno B:", Font9, Brushes.Black, inifinX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.AntigenoB, Font9, Brushes.Black, inifinX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Antígeno H:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.AntigenoH, Font9, Brushes.Black, iniX + incX, iniy, formato);
                e.Graphics.DrawString("Antígeno O:", Font9, Brushes.Black, inifinX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.AntigenoO, Font9, Brushes.Black, inifinX + incX, iniy, formato);
                iniy = iniy + (2 * (incY));
                IncrementodeLinea(titulo);
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Referencias: ", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString("(+);(++) se corresponde con titulos hasta 1/40.-", Font9, Brushes.Black, iniX + 100, iniy, formato);
                iniy = iniy + ((incY));
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("(+++);(++++) se corresponde con titulos iguales o mayores a 1/80.-", Font9, Brushes.Black, iniX + 100, iniy, formato);
                iniy = iniy + (incY);
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Baciloscopía de Esputo:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Baciloscopiadeesputo, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);

            }
        }
        if (countLineas < maxlineas)
        {
            if (pruebaorinacompleta == false) // Se realizo Orina Completa
            {
                iniy = iniy + inctitulos + incY;
                titulo = true;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("ORINA COMPLETA: ", Fontt, Brushes.Black, iniX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Color:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Color, Font9, Brushes.Black, iniX + incxorina, iniy, formato);
                e.Graphics.DrawString("Aspecto:", Font9, Brushes.Black, intermedioX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Aspecto, Font9, Brushes.Black, intermedioX + incxorina, iniy, formato);
                e.Graphics.DrawString("Sedimento:", Font9, Brushes.Black, inifinX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Sedimento, Font9, Brushes.Black, inifinX + incxorina, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Densidad:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Densidad, Font9, Brushes.Black, iniX + incxorina, iniy, formato);
                e.Graphics.DrawString("pH:", Font9, Brushes.Black, intermedioX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.pH, Font9, Brushes.Black, intermedioX + incxorina, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Proteinas:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Proteinas, Font9, Brushes.Black, iniX + incxorina, iniy, formato);
                e.Graphics.DrawString("Glucosa:", Font9, Brushes.Black, intermedioX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Glucosa, Font9, Brushes.Black, intermedioX + incxorina, iniy, formato);
                e.Graphics.DrawString("C.Cetónicos:", Font9, Brushes.Black, inifinX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Cetonicos, Font9, Brushes.Black, inifinX + incxorina, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Sangre:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Sangre, Font9, Brushes.Black, iniX + incxorina, iniy, formato);
                e.Graphics.DrawString("Bilirrubina:", Font9, Brushes.Black, intermedioX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Bilirrubina, Font9, Brushes.Black, intermedioX + incxorina, iniy, formato);
                e.Graphics.DrawString("Urobilinógeno:", Font9, Brushes.Black, inifinX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Urobilinogeno, Font9, Brushes.Black, inifinX + incxorina + 10, iniy, formato);
            }
        }
        if (countLineas < maxlineas)
        {
            if (pruebamicroscopia == false) // Se realizo Microscopia del Sedimento
            {
                iniy = iniy + inctitulos + incY;
                titulo = true;
                IncrementodeLinea(titulo);

                e.Graphics.DrawString("Microscopía del Sedimento: ", Fontt, Brushes.Black, iniX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Células Epiteliales Planas:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.CelulasEpitelialesPlanas, Font9, Brushes.Black, iniX + incX + 20, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Células Epiteliales Redondas:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.CelulasEpitelialesRedondas, Font9, Brushes.Black, iniX + incX + 28, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Leucocitos:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Leucocitos, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Hematíes:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Hematies, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Estrías de Mucus:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.EstriasdeMucus, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Cilindros:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Cilindros, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Cristales:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Cristales, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Piuria:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Piuria, Font9, Brushes.Black, iniX + incX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Observación:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Observacion, Font9, Brushes.Black, iniX + incX, iniy, formato);
            }
        }
        if (countLineas < maxlineas)
        {
            if (pruebacoprositologico == false) // Se realizo Coproparasitologico
            {
                iniy = iniy + inctitulos + incY;
                titulo = true;
                IncrementodeLinea(titulo);

                e.Graphics.DrawString("COPROPARASITOLOGICO: ", Fontt, Brushes.Black, iniX, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Directo:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Directo, Font9, Brushes.Black, iniX + incX + 20, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Seriado:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Seriado, Font9, Brushes.Black, iniX + incX + 20, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Escobillado Anal:", Font9, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Escobillado, Font9, Brushes.Black, iniX + incX + 20, iniy, formato);

            }
        }
        if (countLineas < maxlineas)
        {
            if (prueba2dahojaabajo == false) // Se realizo Prueba de Clearence o Proteinuria
            {
                iniy = iniy + inctitulos + incY;
                titulo = true;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Proteinuria en 24 hs.: ", Fontt, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.Proteinuria, Font9, Brushes.Black, iniX + incX + 20, iniy, formato);
                iniy = iniy + incY;
                IncrementodeLinea(titulo);
                e.Graphics.DrawString("Clearence de Creatinina: ", Fontt, Brushes.Black, iniX, iniy, formato);
                e.Graphics.DrawString(ProtocoloImp.ClearencedeCreatinina, Font9, Brushes.Black, iniX + incX + 20, iniy, formato);

            }
        }

            if (countLineas > maxlineas)
            {
                InicializarContadores();
                nrohoja = nrohoja + 1;
                //fin = false;
                e.HasMorePages = true;
            }
            {
                //fin = true;
                e.HasMorePages = false;
            }

        }

        private void IncrementodeLinea(bool estit)
        {
           bool estitu = estit;
           if (estitu)
           {
               countLineas = countLineas + incY + inctitulos;
               titulo = false;
           }
           else
               countLineas = countLineas + incY;

           if (countLineas > maxlineas)
               InicializarContadores();

        }

       

        private void InicializarContadores()
        {
             countLineas = 0;
             incY = 13;
             inctitulos = 6;
             iniy = 140;
             iniX = 80;
             incX = 120;
             inifinX = 500;
             intermedioX = 300;
             ini2x = 300;
             inidatosx = 230;
             incxorina = 75;
             nrohoja = nrohoja + 1;
        }

        private void agregarProfesionalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string p;
            FrmBuscarProf BuscProf = new FrmBuscarProf();
            BuscProf.ShowDialog();
            if (BuscProf.profselec != null)
            {
                p = BuscProf.profselec.Apellidoprof + " " + BuscProf.profselec.Nombreprof;
                lblProfesional.Text = p;
                prof = BuscProf.profselec;
            }
        }

        private void agregarPacienteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string p;
            FrmBuscarPaciente BuscPac = new FrmBuscarPaciente();
            BuscPac.ShowDialog();
            if (BuscPac.pacselec != null)
            {
                p = BuscPac.pacselec.Apellidopaciente + " " + BuscPac.pacselec.Nombrepaciente;
                lblPaciente.Text = p;
                pac = BuscPac.pacselec;
            }
    }
    }
}

    


    


